<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>1.基本使用</title>
	</head>
	<body>
		<script type="text/javascript" >

			let p1 = new Promise((resolve,reject)=>{
				setTimeout(()=>{
					reject(666)
				},3000)
			})

			let p2 = p1.then(
				value =>{ //成功的回调
					console.log('p1的状态成功了',value)
				}, 
				reason =>{ //失败的回调
					console.log('p1的状态失败了',reason)
					return 777
					/* 
						如果return的是非Promise值，那么then返回的那个Promise实例就是成功的。
						如果return的是Promise值：
									1.若值是成功的，那么then返回的那个Promise实例就是成功的。
									2.若值是失败的，那么then返回的那个Promise实例就是失败的。
					*/
				} 
			)
			let p3 = p2.then(
				value =>{ //成功的回调
					console.log('p2的状态成功了',value)
					return Promise.reject(888)
				}, 
				reason =>{ //失败的回调
					console.log('p2的状态失败了',reason)
				} 
			)
			p3.then(
				value =>{ //成功的回调
					console.log('p3的状态成功了',value)
					return Promise.reject(888)
				}, 
				reason =>{ //失败的回调
					console.log('p3的状态失败了',reason)
				} 
			)

		</script>
	</body>
</html>